package cn.maszy.service.impl.systemsetting;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.maszy.common.Pager;
import cn.maszy.common.Pinyin;
import cn.maszy.common.SessionFactory;
import cn.maszy.dao.systemsetting.B_T_Ufp_ProjectMapper;
import cn.maszy.model.systemsetting.B_T_Ufp_Project;
import cn.maszy.model.systemsetting.B_T_Ufp_ProjectExample;
import cn.maszy.model.systemsetting.B_T_Ufp_ProjectExample.Criteria;
import cn.maszy.service.systemsetting.B_T_Ufp_ProjectService;
@Service
public class B_T_Ufp_ProjectServiceImpl implements B_T_Ufp_ProjectService {
	@Autowired
	private B_T_Ufp_ProjectMapper b_T_Ufp_ProjectMapper;
	
	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#update(cn.maszy.model.investment.B_T_Ufp_Project, cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int update(B_T_Ufp_Project b_T_Ufp_Project) {
		// TODO Auto-generated method stub
		 if(b_T_Ufp_Project.getUuid()==null||"".equals(b_T_Ufp_Project.getUuid())){
			 if(b_T_Ufp_Project.getProjectName()==null||"".equals(b_T_Ufp_Project.getProjectName()))
			 {
				 return 0;
			 }
			 b_T_Ufp_Project.setUuid(UUID.randomUUID().toString());
			 b_T_Ufp_Project.setIsDelete(0);
			 b_T_Ufp_Project.setCreateTime(new Date());
			 b_T_Ufp_Project.setCreateUser(SessionFactory.getSessionUserRealNam());
			 Pinyin py = new Pinyin();
			 String ss = py.getPinYinHeadChar(b_T_Ufp_Project.getProjectName());
			 b_T_Ufp_Project.setSchreiben(ss);
			 return b_T_Ufp_ProjectMapper.insert(b_T_Ufp_Project);
		 }else{
			 if(b_T_Ufp_Project.getProjectName()!=null)
			 {
				 Pinyin py = new Pinyin();
				 String ss = py.getPinYinHeadChar(b_T_Ufp_Project.getProjectName());
				 b_T_Ufp_Project.setSchreiben(ss);
			 }
			 b_T_Ufp_Project.setUpdateTime(new Date());
			 b_T_Ufp_Project.setUpdateUser(SessionFactory.getSessionUserRealNam());
			 return b_T_Ufp_ProjectMapper.updateByPrimaryKeySelective(b_T_Ufp_Project);
		 }
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectOne(java.lang.String)
	 */
	public B_T_Ufp_Project selectOne(String uuid) {
		// TODO Auto-generated method stub
		B_T_Ufp_Project record=b_T_Ufp_ProjectMapper.selectByPrimaryKey(uuid);
		return record;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#delete(java.lang.String)
	 */
	public int delete(String checkIds) {
		// TODO Auto-generated method stub
		for (String id : checkIds.split(", ")) {
			b_T_Ufp_ProjectMapper.deleteByPrimaryKey(id);
		}
		return 1;
	}
	
	public int deleteByCreatetime(String time,String flag) {
		// TODO Auto-generated method stub
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date;
		try {
			date = sdf.parse(time);
			B_T_Ufp_ProjectExample example=new B_T_Ufp_ProjectExample();
			Criteria criteria = example.createCriteria();
			criteria.andCreateTimeLessThan(date);
			criteria.andCategoryStatusEqualTo(flag);
			b_T_Ufp_ProjectMapper.deleteByExample(example);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return 1;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#count(cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int count(B_T_Ufp_ProjectExample example,B_T_Ufp_ProjectMapper b_T_Ufp_ProjectMapper) {
		// TODO Auto-generated method stub
		return b_T_Ufp_ProjectMapper.countByExample(example);
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectList(cn.maszy.model.investment.B_T_Ufp_Project)
	 */
	public Pager<B_T_Ufp_Project> selectList(B_T_Ufp_Project b_T_Ufp_Project,Pager<B_T_Ufp_Project> pager) {
		// TODO Auto-generated method stub
		// 添加查询条件
		B_T_Ufp_ProjectExample example=new B_T_Ufp_ProjectExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_Project!=null){
			if(b_T_Ufp_Project.getCategoryUuid()!=null&&!"".equals(b_T_Ufp_Project.getCategoryUuid())){
				criteria.andCategoryUuidEqualTo(b_T_Ufp_Project.getCategoryUuid());
			}
			if(b_T_Ufp_Project.getCategoryName()!=null&&!"".equals(b_T_Ufp_Project.getCategoryName())){
				criteria.andCategoryNameEqualTo(b_T_Ufp_Project.getCategoryName());
			}
			if(b_T_Ufp_Project.getProjectName()!=null&&!"".equals(b_T_Ufp_Project.getProjectName())){
				criteria.andProjectNameLike("%"+b_T_Ufp_Project.getProjectName()+"%");
			}
			
		}else{
			criteria.andUuidIsNotNull();
		}
		example.or(criteria);
		int totalCount=new B_T_Ufp_ProjectServiceImpl().count(example,b_T_Ufp_ProjectMapper);
		pager.setTotalRecords(totalCount);
		example.setLimitStart(pager.getStartRecord());
		example.setLimitEnd(pager.getPageSize());
		example.setOrderByClause(pager.getOrderField()+" "+pager.getOrderDirection());
		// 取得总的记录条数
		List<B_T_Ufp_Project>  list=b_T_Ufp_ProjectMapper.selectByExample(example);
		pager.setPageRecords(list);
		return pager;
	}
	
	public List<B_T_Ufp_Project> select(B_T_Ufp_Project b_T_Ufp_Project) {
		// TODO Auto-generated method stub
		// 添加查询条件
		B_T_Ufp_ProjectExample example=new B_T_Ufp_ProjectExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_Project!=null){
			if(b_T_Ufp_Project.getCategoryUuid()!=null&&!"".equals(b_T_Ufp_Project.getCategoryUuid())){
				criteria.andCategoryUuidEqualTo(b_T_Ufp_Project.getCategoryUuid());
			}
			if(b_T_Ufp_Project.getCategoryName()!=null&&!"".equals(b_T_Ufp_Project.getCategoryName())){
				criteria.andCategoryNameEqualTo(b_T_Ufp_Project.getCategoryName());
			}
			if(b_T_Ufp_Project.getProjectNum()!=null&&!"".equals(b_T_Ufp_Project.getProjectNum())){
				criteria.andProjectNumLike("%"+b_T_Ufp_Project.getProjectNum()+"%");
			}
			if(b_T_Ufp_Project.getProjectName()!=null&&!"".equals(b_T_Ufp_Project.getProjectName())){
				criteria.andProjectNameLike("%"+b_T_Ufp_Project.getProjectName()+"%");
			}
			if(b_T_Ufp_Project.getSchreiben()!=null&&!"".equals(b_T_Ufp_Project.getSchreiben())){
				criteria.andSchreibenLike("%"+b_T_Ufp_Project.getSchreiben()+"%");
			}
			
		}else{
			criteria.andUuidIsNotNull();
		}
		example.or(criteria);
		example.setOrderByClause("create_time");
		// 取得总的记录条数
		List<B_T_Ufp_Project>  list=b_T_Ufp_ProjectMapper.selectByExample(example);
		//暴力解决数据长，页面显示错误问题
		for(int i=0;i<list.size();i++)
		{
			if(list.get(i).getRemark()!=null){
			String s =list.get(i).getRemark();
			if(s.length()>9){
			s =s.substring(0, 10);
			list.get(i).setRemark(s+"...");
			}
			}
		}
		return list;
	}
	
}
